This page last changed on Apr 10, 2009 by exm3763.

We will be using XP/Scrum agile estimation techniques based on "Agile Estimating and Planning" by Mike Cohn which are outlined below.

Velocity-Driven Sprint Planning

Adjust Priorities

The features implemented for each sprint will be pulled from the product backlog, a list of user stories/features prioritized by the product owner.  Sprint review meetings will be held at the end of each sprint.  During these reviews, new functionality and capabilities that were added during the sprint are demonstrated to stakeholders and feedback is received.  The product backlog will be reviewed and priorities adjusted if necessary.

Determine Target Velocity

When possible, historical values for the target velocity will be used.  For example, the target velocity for the next sprint will be set to the average velocity of the previous sprint.  In the case that there are significant technology changes, the historical velocity value will be used along with a observed velocities in technology spikes and a velocity forecast.  Velocity forecasts will be determined by:

  1. Estimating the number of hours each person will be available to work on the project each day.
  2. Determining the total number of hours that will be spent on the project during the release.
  3. Arbitrarily/randomly selecting stories, expanding them into tasks, until enough tasks to fill the release have been identified.
  4. Converting the velocity determined in the preceding step into a range (multiply by 60% and 160%). 

Identify Sprint Goal

A goal will be determined that succinctly describes what we would like to accomplish as a team during the sprint.  For example "All X features are finished" or "make progress on X".  The sprint goal will be a unifying statement about what will be accomplished during the iteration and does not have to be very specific. 

Select User Stories

Wirox will then meet with the product owner(s) to select stories that combine to meet the sprint goal.  This selection process will be driven by the priority of each story.  For example, a user story related to the goal that has a very low priority may not be included in the iteration.  The selected stories will be marked for the sprint on the product backlog page. 

Split Stories Into Tasks

Next, Team Wirox will decompose each user story into the tasks necessary to deliver the new functionality for that story.  This will include:

  • Writing acceptance test cases
  • Any analysis tasks
  • Documentation tasks
  • Spikes if necessary (a task included in an iteration plan that is being undertaken specifically to gain knowledge or answer a question)
  • Design tasks if necessary infrastructure is not in place
  • Any supporting tasks not related to coding (environment maintenance, configuration changes, etc.)

Estimate Tasks

Task estimates will be expressed in terms of ideal time.  Tasks should be created with an approximate size so that each developer is able to finish an average of one per day.  Large tasks greater than a day will be refined into smaller ones.  Planning poker and Wide Band Delphi techniques will be used to estimate the size of user stories.

Document generated by Confluence on May 21, 2009 10:23